Реферат
У даній роботі викладені основні принципи розв'язання транспортної задачі, зокрема ¾ задача про комівояжера.У роботі використано 5 джерел, вона містить 29 сторінок, 2 додатки, програму, написану на мові Сі.
Зміст
"1-3" \ n \ p ""
РефератЗміст
Введення
1.Постановка задачі про комівояжера
2. Метод гілок і меж
3. Використання верхніх оцінок
4. Рішення із заданою точністю
Висновок
Список використаної літератури
Додаток 1
Додаток 2
Введення
Проблема оптимізації є в певному сенсі, мабуть, найгострішою проблемою сучасності. У будь-якій сфері діяльності людина завжди шукає оптимальне рішення.Існує клас задач, які не задовольняють принципом оптимальності, і, отже, для цих завдань метод динамічного програмування безпосередньо використаний бути не може. Їх вирішення вимагає розвитку спеціальних способів послідовного аналізу варіантів. Зокрема, до такого класу завдань відноситься задача про комівояжера (бродячому торговця).
Дана робота описує знаходження оптимального рішення задачі про комівояжера, застосовуючи метод гілок і меж.
1.Постановка задачі про комівояжера
Розглянемо задачу про комівояжера (бродячому торговця). Припустимо, що бродячий торговець повинен, покинувши місто, якому ми призначимо номер 1 (рис. 1), об'їхати ще N-1 міст і повернутися знову в місто номер 1. У його розпорядженні є дороги, що з'єднують ці міста. Він повинен вибрати свій маршрут - порядок відвідування міст так, щоб шлях, який йому доведеться пройти, був якомога коротшим. Основна умова цієї задачі полягає в тому, що комівояжер не має права повертатися знову до того міста, в якому він одного разу вже побував. Ця умова будемо називати умовою (a). Ми вважаємо, що відстань між двома містами - функція
Сума у виразі (1) поширена по всіх індексах i і j, що задовольняє умові (a), тобто умові, що кожен з індексів i і j входить у вираз (1) один і тільки один раз. Функція
8 |
4 |
2 |
7 |
5 |
6 |
3 |
1 |
Рис.1.
Розглянемо площину t, х, де t - дискретний аргумент, що приймає значення
0, 1, 2,. . . , N, відповідні етапам подорожі бродячого торговця. Значення t = 0 відповідає його початкового стану в місті номер 1, t - 1 - переходу з міста номер 1 в місто, яке він вибрав першим для відвідування, і т. д., t = N означає останній етап його подорожі - повернення в місто номер 1. Аргумент х тепер також приймає дискретні значення 1, 2,. . . , N (рис. 2). З'єднаємо точку (0,1) з точками (1,1), (1,2), ..., (, 1N) і довжинам відрізків, що з'єднують ці точки, припишемо значення
Рис. 2.
Розглянемо вузол Р, що лежить на третій вертикалі (див. рис. 2). Якщо б умову (a) було відсутнє, то вибір траєкторії, яка з'єднує точку Р з точкою (N, 1), не залежав би від того шляху, який привів нас в точку Р. У даному випадку ситуація інша, і якщо два комівояжера знаходяться в точці Р, але один із них прийшов в цей стан, рухаючись вздовж траєкторії, що проходить через точку Q, а другий через точку R, то їх стану істотно відрізняються один від одного. Комівояжер, який рухався по другій траєкторії, вже побував у містах номер 2 та номер 5 і в майбутньому він вже не має права знову заїжджати, в ці міста. Що стосується комівояжера, який рухався вздовж першої траєкторії, то він побував у містах номер 3 і номер 6; він не має права повертатися в ці міста, але зате він ще зобов'язаний відвідати міста номер 2 і номер 5 і т.д.
Оскільки функція
2. Метод гілок і меж
Основа цього, нині широко розповсюдженого методу полягає в побудові нижніх оцінок рішення, які потім використовуються для відбракування неконкурентоспроможних варіантів.Функція
причому сума (2) поширена по i, j так, що кожен з індексів зустрічається в ній один і тільки один раз. Величини
Так що в кожен з варіантів s входить тільки один елемент з кожного рядка і стовпця, то ми можемо виконати наступну операцію, яка тут називається приведенням матриці. Позначимо через h
Матриця C
Зауважимо, що в кожній з рядків матриці C
Величини h
Де
тобто
Позначимо через l * рішення задачі комівояжера, тобто
де мінімум береться по всіх варіантах s, задовольняє умові (a). Тоді величина
Будемо розглядати тепер завдання комівояжера з матрицею З
Розглянемо шлях, що містить безпосередній перехід з міста номери i в місто номера j, тоді на шляху s, що містить цей перехід, ми будемо мати, очевидно, наступну нижню оцінку:
Отже, для тих переходів, для яких
Позначимо через
Тоді очевидно, що для будь-якого
Ми припускаємо виключити деякий безліч варіантів
Розглянемо тепер безліч I
Оскільки перехід i ® j неможливий, то елемент
Розглянемо випадок N = 3 (рис. 4, а) і припустимо, що ми розглядаємо той варіант, який містить перехід 3 ® 2. Тоді задача комівояжера після викреслювання третього рядка та другого стовпця вироджується в тривіальну. Її матриця зображена на рис. 4, б). У цьому випадку ми маємо єдиний шлях, і його довжина буде, очевидно, дорівнює сумі
|
|
Отже, якщо в результаті викреслювання рядка номери i та стовпця номера j ми отримаємо матрицю другого порядку, то завдання можна вважати вирішеною.
Нехай тепер N> 3. Після викреслювання ми отримаємо матрицю порядку N-1> 2. З цією матрицею (N-1)-го порядку зробимо процедуру приведення. Матрицю, яку таким чином отримаємо, позначимо через
На цьому перший крок алгоритму закінчений. У результаті одного кроку ми розбили безліч всіх можливих варіантів на дві множини
|